Users commonly interact with a wide variety of services via browsers. For example, many users predominantly or exclusively use web-enabled Email applications, rather than more traditional desktop Email functionality. In another trend, users now commonly interact with applications via multiple user devices. For example, a user may interact with the same application at different times and in different respective contexts using a smartphone, a tablet-type device, a games console, and/or a traditional desktop computing device, etc. In the near future, users may also add wearable computing devices to their suite of commonly-used computing devices.
Consider a scenario in which a user wishes to suspend his or her interaction with a particular web-enabled application on a first device, and resume that interaction, at a later time, on a second device (or on the same device). No functionality currently exists for efficiently and correctly preserving the state of the user's interaction with the application at the first device, and making that state available to the second (or first) device. One existing mechanism allows a user to preserve his or her tab selections when moving from a first device to a second device; but this mechanism does not preserve the content of the user's session. Further, data center environments commonly use virtual machine technology to transfer state between computing devices, using a hypervisor or the like. But an image produced by this technology may be very large in size. It is not feasible to send such a large quantity of information over common commercial links, such as a wireless cellular connection.